#include "MGUI_ListBoxItem.h"
#include "MGUI_Engine.h"
#include "MGUI_ListBox.h"

namespace Myway {

	ImplementRTTI(MGUI_ListBoxItem, MGUI_Widget);

	MGUI_ListBoxItem::MGUI_ListBoxItem(MGUI_ListBox * _listBox, const MGUI_LookFeel * _lookfeel,
									   const MGUI_String & _text, void * _userData)
		: MGUI_Widget(_lookfeel, _listBox->GetItemWidget())
	{
		mListBox = _listBox;
		mUserData = _userData;

		mTextBox = new MGUI_TextBox(this);
		mTextBox->SetAlign(MGUI_Align::Left | MGUI_Align::VCenter);

		SetText(_text);
	}

	MGUI_ListBoxItem::~MGUI_ListBoxItem()
	{
	}

	void MGUI_ListBoxItem::OnUpdateWidgetState()
	{
		MGUI_Widget::OnUpdateWidgetState();

		if (mListBox->GetEnable() && mListBox->GetSelectItem() == this)
			mState = MGUI_WidgetState::Selected;
	}

	void MGUI_ListBoxItem::OnMousePressed(int _x, int _y, MGUI_MouseButton _id)
	{
		mListBox->OnSelect_(this);
	}

}